package com.edu.system.service;

import com.edu.system.domain.dto.LessonTimetableDTO;
import com.edu.system.domain.dto.WeekTimetableDTO;
import com.edu.system.domain.req.WeekTimetableReq;
import java.util.List;
import com.edu.system.domain.TLessonTimetable;

/**
 * 课Service接口
 * 
 * @author xxxx
 * @date 2024-01-01
 */
public interface ITLessonTimetableService 
{
    public static Integer TEACHER_TABLE = 2;
    public static Integer CLASS_TABLE = 1;

    /**
     * 查询课
     * 
     * @param id 课主键
     * @return 课
     */
    public TLessonTimetable selectTLessonTimetableById(Long id);

    /**
     * 查询课列表
     * 
     * @param tLessonTimetable 课
     * @return 课集合
     */
    public List<TLessonTimetable> selectTLessonTimetableList(TLessonTimetable tLessonTimetable);

    public List<LessonTimetableDTO> showTLessonTimetableList(TLessonTimetable tLessonTimetable);

    /**
     * 新增课
     * 
     * @param tLessonTimetable 课
     * @return 结果
     */
    public int insertTLessonTimetable(TLessonTimetable tLessonTimetable);

    /**
     * 修改课
     * 
     * @param tLessonTimetable 课
     * @return 结果
     */
    public int updateTLessonTimetable(TLessonTimetable tLessonTimetable);

    /**
     * 批量删除课
     * 
     * @param ids 需要删除的课主键集合
     * @return 结果
     */
    public int deleteTLessonTimetableByIds(Long[] ids);

    /**
     * 删除课信息
     * 
     * @param id 课主键
     * @return 结果
     */
    public int deleteTLessonTimetableById(Long id);

    /**
     *
     * @param req
     * @param tableType 1：班级课表  2：老师课表
     * @return
     */
    public WeekTimetableDTO buildWeekTimetable(WeekTimetableReq req, Integer tableType);
}
